package com.kingmed.kmss.admin.modules.sys.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kingmed.kmss.admin.modules.sys.model.SysOpenGroup;

import java.util.List;
import java.util.Map;

/**
 * 对外授权组Service接口
 * 
 * @date 2022-12-16
 */
public interface ISysOpenGroupService extends IService<SysOpenGroup>
{
    /**
     * 查询对外授权组
     * 
     * @param groupId 对外授权组主键
     * @return 对外授权组
     */
    SysOpenGroup selectSysOpenGroupByGroupId(String groupId);

    /**
     * 查询对外授权组列表
     * 
     * @param sysOpenGroup 对外授权组
     * @return 对外授权组集合
     */
    List<SysOpenGroup> selectSysOpenGroupList(SysOpenGroup sysOpenGroup);

    /**
     * 新增对外授权组
     * 
     * @param sysOpenGroup 对外授权组
     * @return 结果
     */
    boolean insertSysOpenGroup(SysOpenGroup sysOpenGroup);

    /**
     * 修改对外授权组
     * 
     * @param sysOpenGroup 对外授权组
     * @return 结果
     */
    boolean updateSysOpenGroup(SysOpenGroup sysOpenGroup);

    /**
     * 批量删除对外授权组
     * 
     * @param groupIds 需要删除的对外授权组主键集合
     * @return 结果
     */
    boolean deleteSysOpenGroupByGroupIds(String[] groupIds);

    /**
     * 删除对外授权组信息
     * 
     * @param groupId 对外授权组主键
     * @return 结果
     */
    boolean deleteSysOpenGroupByGroupId(String groupId);

    /**
     * 根据主键集合获取数据
     * @param ids
     * @return
     */
    Map<Long, SysOpenGroup> listByIdsReturnMap(List<Long> ids);

    /**
     * 分页
     * @param sysOpenGroup
     * @param pageNum
     * @param pageSize
     * @return
     */
    Page<SysOpenGroup> list(SysOpenGroup sysOpenGroup, Integer pageNum, Integer pageSize);
}
